common-xss 安全过滤使用

XSS 过滤说明

XSS (Cross-Site Scripting) 跨站脚本攻击是一种常见的 Web 安全漏洞。本模块提供以下防护能力:

  • 对表单绑定的字符串类型进行 XSS 处理
  • 对 JSON 字符串数据进行 XSS 处理
  • 提供路由和控制器方法级别的放行规则

添加依赖

<!--XSS 安全过滤-->
<dependency>
  <groupId>com.pig4cloud</groupId>
  <artifactId>pigx-common-xss</artifactId>
</dependency>

配置参数

配置项默认值说明
security.xss.enabledfalse开启 XSS 过滤
security.xss.path-patterns必填拦截的路由,如 /**
security.xss.exclude-patterns放行的规则,如 /api/v1/*

在 Nacos 配置中心添加配置:

# nacos/微服务名称-dev.yml
security:
  xss:
    enabled: true
    path-patterns: /**
配置生效范围

配置需要在对应微服务的 Nacos 配置文件中添加,如 pigx-upms-biz-dev.yml

使用 @XssCleanIgnore 注解

可以使用 @XssCleanIgnore 注解对方法和类级别进行忽略。

方法级别忽略

@RestController
public class UserController {

    @XssCleanIgnore
    @PostMapping("/save")
    public R save(@RequestBody User user) {
        // 该方法不进行 XSS 过滤
        return R.ok();
    }
}

类级别忽略

@XssCleanIgnore
@RestController
public class ContentController {

    @PostMapping("/article")
    public R saveArticle(@RequestBody Article article) {
        // 整个类的所有方法都不进行 XSS 过滤
        return R.ok();
    }
}
使用场景

富文本编辑器等场景需要保留 HTML 标签时,应使用 @XssCleanIgnore 注解排除 XSS 过滤